#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n;
void setRow(vector<vector<int>>& vecArr){
	
	for(int i=0;i<n/2;++i){
		for(int j=0;j<n;++j){
			swap(vecArr[i][j],vecArr[n-i-1][j]);
		}
	}
}
void setCol(vector<vector<int>>& vecArr){
	
	for(int i=0;i<n;++i){
		for(int j=0;j<n/2;++j){
			swap(vecArr[i][j],vecArr[i][n-j-1]);
		}
	}
}
int main() {
	
	cin>>n;
	vector<vector<int>> vecArr(n,vector<int>(n));
	for(int i=0;i<n;++i){
		for(int j=0;j<n;++j){
			cin>>vecArr[i][j];
		}
	}
	int row=0,col=0;
	int q;
	cin>>q;
	while(q--){
		int x;
		cin>>x;
		if(x==1){
			++row;
			++col;
		}
		else{
			++row;
		}
	}
	row%=2,col%=2;
	if(col){
		setCol(vecArr);
	}
	if(row){
		setRow(vecArr);
	}
	
	for(int i=0;i<n;++i){
		for(int j=0;j<n;++j){
			cout<<vecArr[i][j]<<' ';
		}
		cout<<endl;
	}
	
	return 0;
}
